package com.stella.ieproductivitybackend.mapper;

import com.stella.ieproductivitybackend.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 型体页数据层接口
 */
@Mapper
public interface ModelMapper {
    /**
     * 工厂列表
     */
    List<Factory> getFactoryList(@Param("model") String model);

    /**
     * 品牌列表
     */
    List<Brand> getBrandList(@Param("model") String model);

    /**
     * 型体列表
     */
    List<Model> getModelList();

    /**
     * 搜索型体
     */
    List<Model> searchModel(@Param("model") String model);

    /**
     * 纯粹达成率工厂
     */
    List<String> getPureFactory(@Param("model") String model);

    /**
     * 纯粹达成率年份
     */
    List<String> getPureYear(@Param("model") String model);

    /**
     * 纯粹达成率工厂
     */
    List<String> getPureMonth(@Param("model") String model);

    /**
     * 纯粹达成率详情
     */
    List<ModelPure> getPureDetail(@Param("model") String model, @Param("factory") String factory, @Param("year") String year, @Param("month") String month);

    /**
     * 纯粹达成率图表
     */
    List<ModelPure> getPureChart(@Param("model") String model);

    /**
     * 入库标准秒值图表
     */
    List<WarehousingChart> getWarehousingChart(@Param("model") String model);

    /**
     * 入库标准秒值详情
     */
    List<Warehousing> getWarehousingDetail(@Param("model") String model, @Param("year") String year, @Param("month") String month);

    /**
     * 标准秒值工厂
     */
    List<String> getStandardFactory(@Param("model") String model);

    /**
     * 标准秒值版本
     */
    List<String> getStandardRevision(@Param("model") String model);

    /**
     * 标准秒值材质
     */
    List<String> getStandardDmaterial(@Param("model") String model);

    /**
     * 标准秒值详情
     */
    List<Standard> getStandardDetail(@Param("model") String model, @Param("factory") String factory, @Param("revision") String revision, @Param("dmaterial") String dmaterial);

    /**
     * 直工 PPH 工厂
     */
    List<String> getDirectFactory(@Param("model") String model);

    /**
     * 直工 PPH 年份
     */
    List<String> getDirectYear(@Param("model") String model);

    /**
     * 直工 PPH 月份
     */
    List<String> getDirectMonth(@Param("model") String model);

    /**
     * 直工 PPH 详情
     */
    List<DirectPPH> getDirectPPH(@Param("model") String model, @Param("factory") String factory, @Param("year") String year, @Param("month") String month);
}
